package com.drug.lib.view.recycptr;

import androidx.annotation.NonNull;

interface AdapterTypePool {

    <T> void register(
            @NonNull Class<? extends T> clazz,
            @NonNull ItemViewBinder<T, ?> binder,
            @NonNull Linker<T> linker);
    <T> void register(
            @NonNull Class<? extends T> clazz,
            @NonNull ItemViewBinder<T, ?> binder);

    boolean unregister(@NonNull Class<?> clazz);

    int size();

    int firstIndexOf(@NonNull Class<?> clazz);


    @NonNull
    ItemViewBinder<?, ?> getItemViewBinder(int index);

    @NonNull
    Class<?> getClass(int index);

    @NonNull
    Linker<?> getLinker(int index);
}
